home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / init.d / udev < prev    next >
Text File  |  2008-10-24  |  2KB  |  108 lines

  1. #!/bin/sh -e
  2. # init script for udev
  3.  
  4. # Check the package is still installed
  5. [ -x /sbin/udevd ] || exit 0
  6.  
  7. # Get LSB functions
  8. . /lib/lsb/init-functions
  9. . /etc/default/rcS
  10.  
  11.  
  12. case "$1" in
  13.     start)
  14.     # We need the uevent support introduced in 2.6.15, bail out if we
  15.     # don't have it and fall back to a static /dev
  16.     if [ ! -f /sys/class/mem/null/uevent ]; then
  17.         if mountpoint -q /dev; then
  18.         # uh-oh, initramfs made some kind of /dev, get rid of it
  19.         umount -l /dev/.static/dev
  20.         umount -l /dev
  21.         fi
  22.         exit 1
  23.     fi
  24.  
  25.     if ! mountpoint -q /dev; then
  26.         # initramfs didn't mount /dev, so we'll need to do that
  27.         mount -n --bind /dev /etc/udev
  28.         mount -n -t tmpfs -o mode=0755 udev /dev
  29.         mkdir -m 0700 -p /dev/.static/dev
  30.         mount -n --move /etc/udev /dev/.static/dev
  31.     fi
  32.  
  33.     # Copy over default device tree
  34.     cp -a -f /lib/udev/devices/* /dev
  35.  
  36.     # It's all over netlink now
  37.     if [ -e /proc/sys/kernel/hotplug ]; then
  38.         echo "" > /proc/sys/kernel/hotplug
  39.     fi
  40.     
  41.     # Start udevd
  42.     log_begin_msg "Starting kernel event manager..."
  43.     if start-stop-daemon --start --quiet --exec /sbin/udevd -- --daemon; then
  44.         log_end_msg 0
  45.     else
  46.         log_end_msg $?
  47.     fi
  48.  
  49.     # This next bit can take a while
  50.     if type usplash_write >/dev/null 2>&1; then
  51.         usplash_write "TIMEOUT 360" ||:
  52.         trap "usplash_write 'TIMEOUT 15' ||:" 0
  53.     fi
  54.  
  55.     # Log things that trigger does
  56.     /sbin/udevadm monitor -e >/dev/.udev.log &
  57.     UDEV_MONITOR_PID=$!
  58.  
  59.     # Fix permissions and missing symlinks/programs for devices made in
  60.     # initramfs, and catch up on everything we missed
  61.     log_begin_msg "Loading hardware drivers..."
  62.     /sbin/udevadm trigger
  63.     if /sbin/udevadm settle; then
  64.         log_end_msg 0
  65.     else
  66.         log_end_msg $?
  67.     fi
  68.  
  69.     # Kill the udev monitor again
  70.     kill $UDEV_MONITOR_PID
  71.     ;;
  72.     stop)
  73.     log_begin_msg "Stopping kernel event manager..."
  74.     if start-stop-daemon --stop --quiet --oknodo --exec /sbin/udevd; then
  75.         log_end_msg 0
  76.     else
  77.         log_end_msg $?
  78.     fi
  79.     umount -l /dev/.static/dev
  80.     umount -l /dev
  81.     ;;
  82.     restart)
  83.     cp -au /lib/udev/devices/* /dev
  84.  
  85.     log_begin_msg "Loading additional hardware drivers..."
  86.     /sbin/udevadm trigger
  87.     if /sbin/udevadm settle; then
  88.         log_end_msg 0
  89.     else
  90.         log_end_msg $?
  91.     fi
  92.     ;;
  93.     reload|force-reload)
  94.     log_begin_msg "Reloading kernel event manager..."
  95.     if start-stop-daemon --stop --signal 1 --exec /sbin/udevd; then
  96.         log_end_msg 0
  97.     else
  98.         log_end_msg $?
  99.     fi
  100.     ;;
  101. *)
  102.     echo "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload}"
  103.     exit 1
  104.     ;;
  105. esac
  106.  
  107. exit 0
  108.